home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / i386 / go32.h < prev    next >
C/C++ Source or Header  |  1994-07-22  |  1KB  |  63 lines

  1. /* Configuration for an i386 running MS-DOS with djgpp/go32.  */
  2.  
  3. /* Don't assume anything about the header files. */
  4. #define NO_IMPLICIT_EXTERN_C
  5.  
  6. #define YES_UNDERSCORES
  7.  
  8. #include "i386/gas.h"
  9.  
  10. #ifdef CPP_PREDEFINES
  11. #undef CPP_PREDEFINES
  12. #endif
  13. #define CPP_PREDEFINES "-Dunix -Di386 -DGO32 -DMSDOS \
  14.   -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386)"
  15.  
  16. #undef EXTRA_SECTIONS
  17. #define EXTRA_SECTIONS in_ctor, in_dtor
  18.  
  19. #undef EXTRA_SECTION_FUNCTIONS
  20. #define EXTRA_SECTION_FUNCTIONS                    \
  21.   CTOR_SECTION_FUNCTION                        \
  22.   DTOR_SECTION_FUNCTION
  23.  
  24. #define CTOR_SECTION_FUNCTION                    \
  25. void                                \
  26. ctor_section ()                            \
  27. {                                \
  28.   if (in_section != in_ctor)                    \
  29.     {                                \
  30.       fprintf (asm_out_file, "\t.section .ctor\n");        \
  31.       in_section = in_ctor;                    \
  32.     }                                \
  33. }
  34.  
  35. #define DTOR_SECTION_FUNCTION                    \
  36. void                                \
  37. dtor_section ()                            \
  38. {                                \
  39.   if (in_section != in_dtor)                    \
  40.     {                                \
  41.       fprintf (asm_out_file, "\t.section .dtor\n");        \
  42.       in_section = in_dtor;                    \
  43.     }                                \
  44. }
  45.  
  46. #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME)    \
  47.   do {                        \
  48.     ctor_section ();                \
  49.     fprintf (FILE, "%s\t", ASM_LONG);        \
  50.     assemble_name (FILE, NAME);            \
  51.     fprintf (FILE, "\n");            \
  52.   } while (0)
  53.  
  54. #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)           \
  55.   do {                        \
  56.     dtor_section ();                           \
  57.     fprintf (FILE, "%s\t", ASM_LONG);        \
  58.     assemble_name (FILE, NAME);                  \
  59.     fprintf (FILE, "\n");            \
  60.   } while (0)
  61.  
  62.  
  63.